/**
 * BladeX Commercial License Agreement
 * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
 * <p>
 * Use of this software is governed by the Commercial License Agreement
 * obtained after purchasing a license from BladeX.
 * <p>
 * 1. This software is for development use only under a valid license
 * from BladeX.
 * <p>
 * 2. Redistribution of this software's source code to any third party
 * without a commercial license is strictly prohibited.
 * <p>
 * 3. Licensees may copyright their own code but cannot use segments
 * from this software for such purposes. Copyright of this software
 * remains with BladeX.
 * <p>
 * Using this software signifies agreement to this License, and the software
 * must not be used for illegal purposes.
 * <p>
 * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
 * not liable for any claims arising from secondary or illegal development.
 * <p>
 * Author: Chill Zhuang (bladejava@qq.com)
 */
package org.springblade.modules.signup.pojo.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.Date;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 订单管理 实体类
 *
 * @author BladeX
 * @since 2024-06-19
 */
@Data
@TableName("tb_qy_students_order")
@Schema(description = "QyStudentsOrder对象")
@EqualsAndHashCode(callSuper = true)
public class QyStudentsOrderEntity extends TenantEntity {

	/**
	 * 学生id
	 */
	@Schema(description = "学生id")
	private Long studentId;

	/**
	 * 课卡id
	 */
	@Schema(description = "课卡id")
	private Long cardTypeId;

	/**
	 * 分班情况
	 */
	@Schema(description = "分班情况")
	private Integer bandingStatus;
	/**
	 * 价格
	 */
	@Schema(description = "价格")
	private String amount;
	/**
	 * 原始价格
	 */
	@Schema(description = "原始价格")
	private String originAmount;
	/**
	 * 支付费用
	 */
	@Schema(description = "支付费用")
	private String paidAmount;
	/**
	 * 退款费用
	 */
	@Schema(description = "退款费用")
	private String refundAmount;
	/**
	 * 	可退款金额
	 */
	@Schema(description = "	可退款金额")
	private String totalCanRefundAmount;
	/**
	 * 支付状态
	 */
	@Schema(description = "支付状态")
	private String payStatus;
	/**
	 * 备注
	 */
	@Schema(description = "备注")
	private String note;


	/**
	 * 课时数
	 */
	@Schema(description = "课时数")
	private String classHour;

	/**
	 * 有效期至
	 */
	@Schema(description = "有效期至")
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date expirationTime;




	//	扩展非数据库字段
	/**
	 * 学生名称
	 */
	@Schema(description = "学生名称")
	@TableField(exist = false)
	private String studentName;

	/**
	 * 课时卡
	 */
	@Schema(description = "课时卡")
	@TableField(exist = false)
	private String cardTypeName;

}
